package com.java.file;

import java.io.File;

/**
 * @author ShaZhengBo
 * @datetime create:2016年10月28日上午10:25:34
 * @updatetime :
 * @updateauthor:
 * @category:文件的检查和创建
 * @describe:
 *            <p>
 *            文件类不仅仅只表示存在的文件或目录。我们也可以用文件对象来创建新的目录或不存在的 整个目录路径。
 *            我们还可以查看文件的特性（如：大小，最后修改日期，读/写），来检查 某个文件对象代表的是一个文件还是一个目录，并可以删除这个文件
 *            </p>
 */
public class MakeDirectories {

	/**
	 * 可读
	 * 
	 * @param file
	 * @return
	 */
	public boolean isRead(File file) {
		return file.canRead();
	}

	/**
	 * 可写
	 * 
	 * @param file
	 * @return
	 */
	public boolean isWriter(File file) {
		return file.canWrite();
	}

	/**
	 * 文件名称
	 * 
	 * @param file
	 * @return
	 */
	public String getName(File file) {
		return file.getName();
	}

	/**
	 * 获取父类全路径
	 * 
	 * @param file
	 * @return
	 * 
	 *         <pre>
	 * The pathname string of the parent directory named by this abstract pathname, or null if this pathname does not name a parent
	 *         </pre>
	 */
	public String getParent(File file) {
		return file.getParent();
	}

	/**
	 * 获取路径
	 * 
	 * @param file
	 * @return
	 */
	public String getPath(File file) {
		return file.getPath();
	}

	/**
	 * 大小
	 * 
	 * @param file
	 * @return
	 */
	public long getLength(File file) {
		return file.length();
	}

	/**
	 * 更新时间
	 * 
	 * @param file
	 * @return
	 */
	public long lastModified(File file) {
		return file.lastModified();
	}

	/**
	 * 文件类型
	 * 
	 * @param file
	 * @return
	 */
	public String getType(File file) {
		if (file.isFile())
			return "file";
		else if (file.isDirectory())
			return "directory";
		else
			return "unknow";
	}

	/**
	 * 是否存在
	 * 
	 * @param file
	 * @return
	 */
	public boolean exists(File file) {
		return file.exists();
	}

	/**
	 * 重命名
	 * 
	 * @param file
	 * @param newName
	 * @return
	 */
	public boolean reName(File file, File newName) {
		return file.renameTo(newName);
	}

	/**
	 * 删除文件
	 * 
	 * @param file
	 * @return
	 */
	public boolean delFile(File file) {
		return file.delete();
	}

	public static void main(String[] args) {
		boolean a = new MakeDirectories().reName(new File("D:/bb.txt"), new File("D:/bb.txt"));
		System.out.println(a);
	}

}
